// 路由文件夹
// 静态路由 动态权限路由

import Vue from 'vue'
import Router from 'vue-router' //引入路由
Vue.use(Router)//vue的注册表中加入路由
// export default 向外抛出 
// new Router 构造函数 路由的实例化对象
import login from "@/view/login/login";
import home from "@/view/home/home";
import { getStore}  from "@/config/config";
// import control from "@/view/control/control";
// import goodsclassify from "@/view/goods/goodsclassify";
// import goods from '@/view/goods/goods';
// 

let RouterMain = new Router({
  // 路由模式
  // hash模式 history模式 (不带#)
  mode:"hash",//默认 模式是hash
  // vue路由模式有哪些？
  /*
    vue路由默认是hash 
    开发过程中我们用的是hash开发，但上线时候我们会切换成history
    但是虽然要切换成history但是在linux或者是windows服务器部署时候会导致history模式页面空白
    所以切换成了history模式我们需要后端通过（apache）阿帕奇重定向到当前页面在服务器上发布
  
  */ 
  routes: [//路由列表 
    {
      path:"/",//路由地址 "/" 默认vue是第一次打开的路由页面
      name:"login",//路由的名字,
      component:login,//路由的引入地址,
      // 路由携带参数 让当前路由对象中携带我们自己需要的参数
      meta:{
        title:"登录页"
      }
    },
    // {
    //   path:"/home",
    //   name:"home",
    //   component:home,
    //   redirect:"/control",//下一级路由默认打开哪个
    //   children:[
    //     {
    //       // 控制台
    //       path:"/control",
    //       name:"control",
    //       component:control,
    //     },{
    //       path:"/goods",//商品
    //       name:"goods",
    //       component:goods,
    //       // 路由中独享式路由守卫
    //       // 针对于项目中独特权限访问路由页面进行单独的守卫
    //       beforeEnter:(to,from ,next)=>{
    //         console.log(to)
    //         console.log(from)
    //         // alert("1")
    //         next()
    //       }
    //     },{
    //       path:"/goodsclassify",//商品分类
    //       name:"goodsclassify",
    //       component:goodsclassify
    //     }
    //   ]//该路由的子级路由
    // }
  ]
})

// 全局路由守卫 beforeEach() 跳转路由时跳转之前进行拦截和处理

RouterMain.beforeEach((to , from , next)=>{
  console.log(to)//去往的路由对象
  console.log(from)//从什么路由对象去往
  // console.log( RouterMain.options.router )
 
  next()//next是一个函数 放行
  // 如果to的路由对象不是登录注册忘记密码等不需要登录的路由页面 && 用户没有登录就返回登录页
  // 如果用户已经登录但是用户去往的页面权限不满足我们就返回404页面
  // 如果from是null但是to是需要登录的页面 我们直接跳转到登录页
  // 如果用户不是白名单用户 不管在哪个页面都直接去往登录页
})
// 该路由守卫已经发生了跳转后进行该页面的第一瞬间进行守卫
RouterMain.afterEach((to,from)=>{
  console.log(to)
  console.log(from)
  document.title = to.meta.title;
  // 页面的load的加载性动画在这里写最为合适

})
export default RouterMain